/**
 * 工具函数包
 * @type {{getUserDataAsync()}}
 */


const {parseString} = require('xml2js');

module.exports = {
    // 接收请求体中的数据
    getUserDataAsync(req) {
        return new Promise((resolve, reject) => {
            let xmlData = '';
            req.on('data', data => {
                xmlData += data.toString();
            })
                .on('end', () => {
                    // 当数据接收完毕时，会触发当前函数
                    resolve(xmlData);
                });
        })

    },

    // 将xml数据解析为js对象
    parseXmlAsync(xmlData) {
        return new Promise((resolve, reject) => {
            parseString(xmlData, {trim: true}, (err, data) => {
                if (!err) {
                    resolve(data);
                } else {
                    reject('parseXmlAsync出错：' + err);
                }
            });
        })
    },

    // 格式化数据
    formatMessage(jsData) {
        let message = {};
        // 获取xml对象
        jsData = jsData.xml;
        // 判断数据是否是一个对象
        if (typeof jsData === 'object') {
            // 遍历对象
            for (let key in jsData) {
                // 获取属性值
                let value = jsData[key];
                message[key] = value[0];
            }
        }
        return message;
    },

}
